package com.bw.mapper;

import com.bw.bean.Vo;
import com.bw.bean.Vo1;
import com.bw.bean.Vo2;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface VoMapper {
    @Select("select bp.name,sum(oi.final_total_amount) `value` from order_info oi\n" +
            "left join base_province bp on oi.province_id = bp.id\n" +
            "group by bp.name")
    List<Vo> getList1();
    @Select("select bt.name,sum(oi.final_total_amount) `value` from order_info oi\n" +
            "left join order_detail od on oi.id = od.order_id\n" +
            "left join sku_info si on od.sku_id = si.id\n" +
            "left join base_trademark bt on si.tm_id = bt.id\n" +
            "group by bt.name\n" +
            "order by `value`")
    List<Vo> getList2();
    @Select("select bc1.name,sum(oi.final_total_amount) `value` from order_info oi\n" +
            "left join order_detail od on oi.id = od.order_id\n" +
            "left join sku_info si on od.sku_id = si.id\n" +
            "left join base_category3 b on si.category3_id = b.id\n" +
            "left join base_category2 c on b.category2_id = c.id\n" +
            "left join base_category1 bc1 on c.category1_id = bc1.id\n" +
            "group by bc1.name")
    List<Vo> getList3();
    @Select("select  '用户数' type,a.num newNum,b.num oldNum from\n" +
            "(select count(*) num from user_info where timestampdiff(year ,create_time,now())<=1 )a ,\n" +
            "(select count(*) num from user_info where timestampdiff(year ,create_time,now())>1 )b")
    List<Vo1> getList4();
    @Select("select c.name,sum(oi.final_total_amount) `value` from order_info oi\n" +
            "left join order_detail od on oi.id = od.order_id\n" +
            "left join sku_info si on od.sku_id = si.id\n" +
            "left join base_category3 b on si.category3_id = b.id\n" +
            "left join base_category2 c on b.category2_id = c.id\n" +
            "group by c.name\n" +
            "order by `value`")
    List<Vo> getList5();
    @Select("select concat(substr(ui.birthday,3,1),'0后') `name`,sum(oi.final_total_amount) `value` from order_info oi\n" +
            "left join user_info ui on ui.id = oi.user_id\n" +
            "group by concat(substr(ui.birthday,3,1),'0后')")
    List<Vo> getList6();
    @Select("select yys `name`,sum(final_total_amount) `value` from order_info\n" +
            "where yys is not null\n" +
            "group by yys")
    List<Vo> getList7();

    @Select("select bt.name,if(ui.gender = 'F','女','男') gender,sum(oi.final_total_amount) `value` from order_info oi\n" +
            "left join order_detail od on oi.id = od.order_id\n" +
            "left join sku_info si on od.sku_id = si.id\n" +
            "left join base_trademark bt on si.tm_id = bt.id\n" +
            "left join user_info ui on oi.user_id = ui.id\n" +
            "group by bt.name,ui.gender")
    List<Vo2> getList8();

    @Select("select c.name,sum(oi.final_total_amount) `value` from order_info oi\n" +
            "left join order_detail od on oi.id = od.order_id\n" +
            "left join sku_info si on od.sku_id = si.id\n" +
            "left join base_category3 b on si.category3_id = b.id\n" +
            "left join base_category2 c on b.category2_id = c.id\n" +
            "group by c.name\n" +
            "order by `value`")
    List<Vo> getList9();

    @Select("select bt.name,sum(oi.final_total_amount) `value` from order_info oi\n" +
            "left join order_detail od on oi.id = od.order_id\n" +
            "left join sku_info si on od.sku_id = si.id\n" +
            "left join base_trademark bt on si.tm_id = bt.id\n" +
            "group by bt.name\n" +
            "order by `value`")
    List<Vo> getList10();

    @Select("select sum(final_total_amount) from order_info")
    Double getList11();

    @Select("select s.spu_name `name`,sum(oi.final_total_amount) `value` from order_info oi\n" +
            "left join order_detail od on oi.id = od.order_id\n" +
            "left join sku_info si on si.id = od.sku_id\n" +
            "left join spu_info s on s.id = si.spu_id\n" +
            "group by s.spu_name")
    List<Vo> getList12();
}
